//链表的中间节点
//给定一个头结点为 head 的非空单链表，返回链表的中间结点。
//如果有两个中间结点，则返回第二个中间结点。

//思路一：遍历求总个数
#include<stdio.h>
#include<assert.h>
struct ListNode* middleNode(struct ListNode* head) {
	struct ListNode* cur = head;
	int count = 0;
	while (cur)
	{
		cur = cur->next;
		count++;
	}
	cur = head;
	count = count / 2;
	while (count--)
		cur = cur->next;
	return cur;
}